package com.rich.live.service;


import com.rich.common.result.CommonResponse;
import com.rich.common.result.ResultData;
import com.rich.live.pojo.TbLive;
import com.rich.live.vo.LiveVo;

import java.util.List;

/**
 * @author hu
 * @version 1.0
 * @date 2021/08/14 18:51
 */
public interface LiveService {

    /**
     * 不限、正在直播、精彩回放查询
     *
     * @param status
     * @return
     */
    List<TbLive> allLive(String status);

    /**
     * 查询
     *
     * @param live
     * @return
     */
    ResultData liveList(LiveVo live);

    /**
     * 添加直播
     * @param live
     * @param token
     */
    void addLive(TbLive live,String token);

    /**
     * 查询当前直播信息
     *
     * @param id
     * @return
     */
    TbLive findOne(Long id);

    /**
     * 逻辑删除
     *
     * @param id
     */
    void deleteById(Long id);

    /**
     * 直播结束 修改直播状态
     *
     * @param id
     * @param status
     * @return
     */
    void startStatusById(Long id, String status);

    /**
     * 开启关闭直播 是否违规
     *
     * @param id
     * @param violation
     * @return
     */
    void onAndOff(Long id, String violation);

    /**
     * 当前直播人和在线人数
     *
     * @param id
     * @return
     */
    CommonResponse liveDetails(Long id);

    /**
     * 进入直播间 在线人数+1
     *
     * @param id
     */
    void liveInfo(Long id);

    /**
     * 退出直播间 在线人数-1
     *
     * @param id
     */
    void liveExit(Long id);

    /**
     * 拉流
     * @param id
     * @return
     */
    CommonResponse la(Long id);

    /**
     * 精彩回放点击量
     * @param id
     */
    void updatePlayNum(Long id);

    /**
     * 开启直播
     *
     * @param id
     * @return
     */
    TbLive start(Long id);

}
